using System.Data.Common;
using System.Data.SQLite;
using DataAssociations.Repository.Connection.RDBMSConnectionInterfaces;
using DataAssociations.Repository.Connection.RDBMSSchemaExplorer.Interfaces;
using DataAssociations.Repository.Connection.ValidationRules;
using DataAssociations.Repository.Queries;

namespace DataAssociations.Repository.Connection.RDBMSConnectionModels
{
    public class SqlLiteConnectionStringType : IConnectionStringType
    {
        [NonEmptyStringValidation]
        public string DataSource { get; set; }
        public string Password { get; set; }

        public DbConnectionStringBuilder BuildConnectionString()
        {
            var builder = new SQLiteConnectionStringBuilder {DataSource = DataSource, Password = Password};
            return builder;
        }

        public string DataBaseManagementSystemName
        {
            get { return "SqlLite Database"; }
        }

        public IRelationalSchemaExplorer GetSchemaExporter
        {
            get { throw new System.NotImplementedException(); }
        }

        public IDataRepository GetDataRepository
        {
            get { return new SqlLiteDataRepository(); }
        }


        public DbConnection DataConnection
        {
            get { throw new System.NotImplementedException(); }
        }

        public DbCommand GetDbCommand(string query)
        {
            throw new System.NotImplementedException();
        }

        public DbDataReader DataReader
        {
            get { throw new System.NotImplementedException(); }
        }
    }
}